package com.blacktry.entity.model;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.Version;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 
 * </p>
 *
 * @author blackTry
 * @since 2021-12-05
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="Course对象", description="")
public class Course implements Serializable {

    private static final long serialVersionUID = 1L;

    @ExcelProperty(value = "序号")
    @ApiModelProperty(value = "主键")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @ExcelProperty(value = "课程号")
    @ApiModelProperty(value = "课程号")
    private String courseId;

    @ExcelProperty("开课院系")
    @ApiModelProperty(value = "开课院系：1软件学院 2数据科学与技术系")
    private String courseFaculty;

    @ExcelProperty("课程名")
    @ApiModelProperty(value = "课程名")
    private String courseName;

    @ExcelProperty("合班人数")
    @ApiModelProperty(value = "合班人数")
    private String classNum;

    @ExcelProperty("人数")
    @ApiModelProperty(value = "人数")
    private Integer num;

    @ExcelProperty(value = "周学时/周数")
    @TableField(exist = false)
    @ApiModelProperty(value = "周学时/周数")
    private String timeWeekNum;

    @ExcelIgnore
    @ApiModelProperty(value = "周学时")
    private Integer timeWeek;

    @ExcelIgnore
    @ApiModelProperty(value = "周数")
    private String weekNum;

    @ExcelIgnore
    @ApiModelProperty(value = "课堂的逻辑时间")
    private String logicTime;

    @ExcelIgnore
    @ApiModelProperty(value = "课堂的实际时间")
    private String realTime;

    @ExcelProperty("总学时")
    @ApiModelProperty(value = "总学时")
    private String timeAll;

    @ExcelProperty("学分")
    @ApiModelProperty(value = "学分")
    private Float credit;

    @ExcelProperty("课程类别")
    @ApiModelProperty(value = "课程类别：1通识教育必修课 2通识教育选修课 3学科必修课 4专业必修课5专业选修课 6实践教学环节  ")
    private String type;

    @ExcelProperty("课程性质")
    @ApiModelProperty(value = "课程性质：1必修课	2任选课 ")
    private String nature;

    @ExcelProperty("考核方式")
    @ApiModelProperty(value = "考核方式：1考试 2考查")
    private String examinationWay;

    @ExcelProperty(value = "教室类型")
    @ApiModelProperty(value = "教室类型：1机房 	2多媒体教室 3普通教室")
    private String classroomType;

    @ExcelIgnore
    @ApiModelProperty(value = "院考,系考")
    private String collegesOrDepartments;

    @ExcelIgnore
    @ApiModelProperty(value = "是否为核心课程")
    private String core;

    @ExcelIgnore
    @ApiModelProperty(value = "辅导时间地点")
    private String coach;

    @ExcelIgnore
    @ApiModelProperty(value = "辅导教师")
    private String coachTeacher;

    @ExcelIgnore
    @ApiModelProperty(value = "期末考核方式(1闭卷笔试2口试3综合实验4开卷笔试5论文6其他)")
    private Integer assessmentWay;

    @ExcelIgnore
    @ApiModelProperty(value = "教材")
    private String textBook;

    @ExcelIgnore
    @ApiModelProperty(value = "参考书")
    private String referenceBook;

    @ExcelIgnore
    @ApiModelProperty(value = "作业占比")
    private Double homeworkProportion;

    @ExcelIgnore
    @ApiModelProperty(value = "测验占比")
    private Double testProportion;

    @ExcelIgnore
    @ApiModelProperty(value = "实验占比")
    private Double labProportion;

    @ExcelIgnore
    @ApiModelProperty(value = "出勤占比")
    private Double attendanceProportion;

    @ExcelIgnore
    @ApiModelProperty(value = "课堂表现占比")
    private Double performanceProportion;

    @ExcelIgnore
    @ApiModelProperty(value = "论文或综合作业占比")
    private Double paperProportion;

    @ExcelIgnore
    @ApiModelProperty(value = "其他考核方式")
    private Double otherProportion;

    @ExcelIgnore
    @ApiModelProperty(value = "期末考试占比")
    private Double examProportion;

    @ExcelIgnore
    @ApiModelProperty(value = "理论学时")
    private Integer timeTheory;

    @ExcelIgnore
    @ApiModelProperty(value = "实践学时")
    private Integer timePractical;

    @ExcelIgnore
    @ApiModelProperty(value = "上机学时")
    private Integer timeComputer;

    @ExcelIgnore
    @ApiModelProperty(value = "实验学时")
    private Integer timeLab;

    @ExcelIgnore
    @ApiModelProperty(value = "实践学时")
    private Integer timePractic;

    @ExcelIgnore
    @ApiModelProperty(value = "理教周数")
    private Integer theoryWeek;

    @ExcelIgnore
    @ApiModelProperty(value = "标记")
    private Integer remark;


}
